package cn.iocoder.yudao.module.jikong.dal.dataobject.jkOrder;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;

/**
 * 单据 DO
 *
 * @author xc
 */
@TableName("jk_order")
@KeySequence("jk_order_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class JkOrderDO extends BaseDO {

    /**
     * id
     */
    @TableId
    private Long id;
    /**
     * 单据编号
     */
    private String orderNo;
    /**
     * 用户id
     */
    private Long userId;
    /**
     * 用户登录账号
     */
    private String userPhone;
    /**
     * 用户类型
     *
     * 枚举 {@link TODO jk_user_type 对应的类}
     */
    private Integer userType;
    /**
     * 真实姓名
     */
    private String realName;
    /**
     * 单据状态
     *
     * 枚举 {@link TODO jk_order_status 对应的类}
     */
    private Integer status;
    /**
     * 申请人地址
     */
    private String address;
    /**
     * 申请联系人
     */
    private String contactName;
    /**
     * 申请人联系手机
     */
    private String contactPhone;
    /**
     * 样本领取时间
     */
    private LocalDateTime receiveTime;
    /**
     * 样本归还时间
     */
    private LocalDateTime rebackTime;
    /**
     * 样本领取方式
     */
    private String receiveType;

    private Long productId;

    private String passWords;

    private String rejectWords;


    //数据使用申请表
    @Schema(description = "研究背景与目的")
    private String applyBackground;
    @Schema(description = "详细分析计划")
    private String applyPlan;
    @Schema(description = "所需变量清单",example = "file1url,...,file3url")
    private String applyList;
    @Schema(description = "伦理审查证明")
    private String applyProof;
    @Schema(description = "样本申请规格id")
    private Integer productSize;
    @Schema(description = "样本申请备注")
    private String remark;
    @Schema(description = "样本申请数量")
    private Integer applyNum;

    //数据使用申请表
    @Schema(description = "数据使用协议")
    private String dataAgreement;
    @Schema(description = "知识产权协议")
    private String knowledgeAgreement;
    @Schema(description = "数据安全协议")
    private String dataSecurityAgreement;


    //专家审批字段
    @Schema(description = "科学价值")
    private String scientificValue;
    @Schema(description = "数据安全方案")
    private String dataSecurity;
    @Schema(description = "是否符合队列建设目标")
    private Integer targetOk;



}
